Обмен зашифрованными ключами

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Обмен зашифрованными ключами (англ. Encrypted Key Exchange, EKE) — протокол, разработанный Стивом Белловином и Майклом Мерритом[1]. EKE работает при условии, что у пользователей до начала работы протокола есть общий секрет. Протокол позволяет формировать сеансовый ключ для установления защищенного соединения. Для каждого сеанса генерируется новый сессионный ключ.

Предисловие[править | править код]

Данный протокол использует симметричное и асимметричное шифрование. В каждой сессии протокола генерируется случайным образом открытый ключ и шифруется на имеющимся у сторон секретном ключе. Использование двух видов шифрования - главная особенность данного протокола. В качестве общего секрета в схеме может выступать пароль, что делает данный протокол удобным при использовании в системах, где общий секрет является паролем.

Работа протокола EKE
Схема работы протокола обмена зашифрованными ключами.

Протокол EKE[править | править код]

Алиса и Боб обладают общим секретом P. Используя протокол EKE у них есть возможность генерировать общий сеансовый ключ K.

  1. Алиса генерирует случайную пару открытый-закрытый ключ, шифрует симметричным шифрованием открытый ключ K' с использованием общего секрета P в качестве ключа. Посылает Боб.
  2. Боб, зная общий секрет, расшифровывает сообщение и получает ключ K'. Далее - случайным образом генерирует сеансовый ключ k, шифрует его открытым ключом K' и общим секретом P. Посылает Алиса.
  3. Алиса получает общий сеансовый ключ k, расшифровывая сообщение. Генерирует случайную строку , шифрует её на k. Посылает Боб.
  4. Боб получает строку Алисы, расшифровывая сообщение. Далее - генерирует свою случайную строку . Общим сеансовым ключом шифрует обе строки, передает зашифрованные строки Алисе.
  5. Алиса получает и , расшифровывая сообщение. Значение ,полученное от Боба, сравнивается с тем, что было выбрано в пункте (3). Если значения совпадают, то Алиса шифрует на ключе и посылает Бобу.
  6. Боб получает , расшифровывая сообщение. Значение ,полученное от Алисы, сравнивается с тем, что было выбрано в пункте (4). Если значения совпадают, то работа протокола завершена - участники могут обмениваться сообщениями используя при их шифровании ключ k.

Стойкость к атакам[править | править код]

В результате работы протокола пассивный криптоаналитик Ева может получить доступ только к и , а также к сообщениям, зашифрованным на общем сессионном ключе k. Так как в алгоритме используется схема асимметричного шифрования и ключи K' и k выбираются случайно, Ева не сможет подобрать P. Таким образом общий секрет P может быть простым паролем, который в состоянии запомнить человек.

Этапы 3-6 обеспечивают подтверждение. На этапах 3-5 Алиса удостоверяется, что Боб знает общий сеансовый ключ. На этапах 4-6 Боб удостоверяется, что Алиса знает общий сеансовый ключ. Эта же задача решается в протоколе Kerberos посредством обмена метками времени.

Реализации[править | править код]

При реализации данного протокола возможно использование многих алгоритмов с открытыми ключами, но также надо учитывать, что ограничения методов шифрования на ключи могут дать взломщику дополнительные возможности для проведения атак. Использование случайных последовательностей в данном протоколе сделает атаку "брут-форсом" невозможной.

Реализация EKE с использованием системы Эль-Гамаля[1][править | править код]

Преимущества[править | править код]

При использовании схемы Эль-Гамаля[2] возможно упрощение основного протокола.

Инициализация[править | править код]

Значения g - порождающий элемент группы и p - модуль, по которому производятся вычисления, выбираются для всех пользователей протокола. Также в соответствии с протоколом EKE у пользователей есть общий секрет r. Тогда - открытый ключ.

Работа протокола[править | править код]

  1. В данном алгоритме открытый ключ не надо шифровать на общем секрете P. Для общего случая такой подход не работает. На первом шаге протокола Алиса посылает Бобу:
  2. Для алгоритма Эль-Гамаля Боб выбирает случайное число R. Тогда на данном этапе Боб посылает данное сообщение:

Реализация EKE с использованием протокола Диффи — Хеллмана, DH-EKE[3][править | править код]

Работа EKE с алгоритмом Диффи-Хеллмана, DH-EKE

При реализации EKE с использованием протокола Диффи — Хеллмана[4] ключ K генерируется автоматически участниками работы протокола во время его исполнения.

Преимущества[править | править код]

При использовании протокола DH-EKE решается уязвимость базового протокола Диффи-Хеллмана к атаке человек посередине(MITM). Если криптоаналитик не знает общий секрет пользователей, то он не сможет[3] подобрать ключ, потому что шифруются случайные значения.

Инициализация[править | править код]

Значения g - порождающий элемент группы и n - модуль, по которому производятся вычисления, выбираются для всех пользователей протокола. В соответствии с протоколом EKE у пользователей есть общий секрет P.

Работа протокола[править | править код]

  1. Алиса случайно выбирает , посылает его Бобу. При этом нет необходимости, чтобы Алиса шифровала первое сообщение на общем секрете P.
  2. Боб случайно выбирает , вычисляет K, генерирует случайную строку , шифрует её на ключе K. Далее - вычисляет , шифрует его на общем секрете P. Передает Алисе.
  3. Алиса получает , расшифровывая первую часть сообщения с использованием общего секрета P. Далее - вычисляет K, расшифровывает полученным ключом вторую часть сообщения Боба. Генерирует случайную строку , шифрует полученные строки на ключе K и посылает Бобу.
  4. Боб получает и , расшифровывая сообщение. Значение ,полученное от Алисы, сравнивается с тем, что было выбрано в пункте (3). Если значения совпадают, то Боб шифрует на ключе K и посылает Алисе.
  5. Алиса получает , расшифровывая сообщение. Значение ,полученное от Боба, сравнивается с тем, что было выбрано в пункте (4). Если значения совпадают, то работа протокола завершена - участники могут обмениваться сообщениями используя при их шифровании ключ K.

Усиленный протокол EKE[править | править код]

Стивом Белловином и Майклом Мерритом в работе[1] было предложено усиление части протокола запрос-ответ. Данное усиление позволяет[3] избежать компрометации данных при условии, что у криптоаналитика есть значение прошлого общего сеансового ключа k.

  • На шаге 3 Алиса генерирует случайное число . Посылает Бобу:
  • На шаге 4 Боб генерирует случайное число и посылает Алисе:

При такой работе протокола Алиса и Боб могут вычислить общий сеансовый ключ -- . В дальнейшем этот ключ используется для установления защищенного соединения, ключ k используется как ключ обмена ключами.

Допустим, что Ева получила доступ к значению S, но при этом работа протокола построена так, что это не даст Еве никакой информации об общем секрете P. К тому же, так как на ключе K шифруются только случайные данные, то криптографические подходы для его восстановлению неприменимы.

Примечания[править | править код]

  1. 1 2 3 S. M. Bellovin, M. Merritt. Encrypted Key Exchange: Password-Based Protocols Secure Against Dictionary Attacks (англ.) // Proceedings of the I.E.E.E. Symposium on Research in Security and Privacy, Oakland. — 1992. — P. 72—84. Архивировано 13 декабря 2021 года.
  2. T. ElGamal. A public key cryptosystem and a signature scheme based on discrete logarithms (англ.) // IEEE Transactions on Information Theory. — 1985. — Vol. IT-31. — P. 469–472.
  3. 1 2 3 Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — С. 82. — 816 с. — 3000 экз. — ISBN 5-89392-055-4.
  4. W. Diffie and M. E. Hellman. New directions in cryptography (англ.) // IEEE Transactions on Information Theory. — 1976. — Vol. IT-11. — P. 644–654.